There are continually increasing number of mobile communication devices in use today, including, for example, smart phones, personal digital assistants (PDAs) with wireless capabilities, personal computers, self-service kiosks and two-way pagers. Accordingly, software applications are being developed to execute on these devices and increase their utility. For example, a smart phone may include an application which retrieves the weather for a range of cities, or a PDA which may include an application that allows a user to shop for groceries. Such software applications take advantage of connectivity to a communication network in order to provide timely and useful services to users of the communication devices.
Generally, there are two broadly defined ways of transmitting data to a communication device. In a push system, data is transmitted, or pushed, to the user from a data source without requiring the user to explicitly request the data. In a pull system, data is transmitted, or pulled, from a data source in response to a specific request from the user. Further, hybrid systems exist that offer a combination of both the push and pull systems.
In order to implement a push system, a server is provided that, given a user's request to be notified with specific data on predefined conditions, transmits this data to the user's device as soon as the specific data is available and/or the predefined conditions have been met. Therefore, the onus is on program developers to ensure that the applications they are deploying are properly written so that such notifications can be properly implemented.
However, due to limited resources of many devices, as well as the complexity and expense required to deliver large amounts of data to the devices, developing and maintaining software applications tailored for a variety of devices remains a difficult and time-consuming task.
Further, with the proliferation of wireless communication devices, there is an increased demand to quickly develop client applications that support subscriptions and notifications. Currently, bandwidth costs and speed limitations of wireless communication devices make the use of notifications an attractive alternate to frequently polling a resource.
However, applications to be executed on communication devices that support notifications need to be developed manually. This type of application can be complex and require additional developer time and effort to adapt it to a notification network environment.
Accordingly, it is an objection to obviate or mitigate at least some of the above-presented disadvantages.